package model;

import java.util.Observable;

import observer.NotificationObjetProposition;
import observer.ObserverProposition;

import model.states.EtatProposition;

public class Proposition extends Observable {
	
	private Demandeur demandeur;
	private Offre offre;
	private EtatProposition etatProposition;
	
	
	public Proposition(Demandeur d,Offre o) {
		super();
		demandeur=d;
		offre=o;
		addObserver(new ObserverProposition());
	}	
	
	/**
	 * @param demandeur the demandeur to set
	 */
	public void setDemandeur(Demandeur demandeur) {
		this.demandeur = demandeur;
	}
	/**
	 * @return the demandeur
	 */
	public Demandeur getDemandeur() {
		return demandeur;
	}
	/**
	 * @param offre the offre to set
	 */
	public void setOffre(Offre offre) {
		this.offre = offre;
	}
	/**
	 * @return the offre
	 */
	public Offre getOffre() {
		return offre;
	}

	/**
	 * @param etatProposition the etatProposition to set
	 */
	public void setEtatProposition(EtatProposition etatProposition) {
		this.etatProposition = etatProposition;
		notificationProposition("etat :"+etatProposition.getStatus());
	}

	/**
	 * @return the etatProposition
	 */
	public EtatProposition getEtatProposition() {
		return etatProposition;
	}
	/**
	 * Notification des observeurs de la Proposition suite à un changement de celle-ci
	 * @param enonce
	 */
	public void notificationProposition(String enonce){
		setChanged();
		notifyObservers(new NotificationObjetProposition(this, enonce));
		clearChanged();
	}

}
